import Context from "./Context";
import { AddStrategy, SubStrategy } from "./Strategy";

// 创建一个上下文对象
// 在创建的时候，传递一个默认的执行策略
const context = new Context(new AddStrategy());


const action = getAction(); // 这里的 getAction 是一个模拟的函数，用来模拟用户选择的策略
function getAction() {
  return "sub";
}

// 设置策略
// 根据用户选择的策略，设置不同的策略
switch (action) {
  case "add":
    context.setStrategy(new AddStrategy());
    break;
  case "sub":
    context.setStrategy(new SubStrategy());
    break;
  default:
    break;
}

// 执行对应的策略
const a = 10;
const b = 5;
const result = context.executeStrategy(a, b);
console.log(result);